package com.leyou.search.doc;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Map;
import java.util.Set;

/**
 * @version V1.0
 * @author: Ljxpa
 * @date: 2020/03/11 11:36
 * @description:
 */
@Data
@Document(indexName = "goods",type = "docs",shards = 1,replicas = 1)
//indexName：索引库名，type：文档类型，shards：分片数（几个ES服务），replicas：每个服务的备份数
public class Good {
	@Id
	@Field(type = FieldType.Keyword)//keyword表示不分词，默认创建索引，默认不存储，ES的特性，就算不存储，也会在一个resour中显示出字段的所有信息
	private Long id; // spuId
	@Field(type = FieldType.Keyword, index = false)
	private String subTitle;// 卖点
	@Field(type = FieldType.Keyword, index = false)
	private String skus;// sku信息的json结构

	@Field(type = FieldType.Text, analyzer = "ik_max_word")
	private String all; // 所有需要被搜索的信息，包含标题，分类，甚至品牌
	private Long brandId;// 品牌id
	private Long categoryId;// 商品3级分类id
	private Long createTime;// spu创建时间
	private Set<Long> price;// 价格
	// @Field(type = FieldType.Keyword)
	private Map<String, Object> specs;// 可过滤搜索的规格参数，key是参数名，值是参数值。添加到索引库之后，会被自动解析成一个个词条，词条的名称为specs.key的名称

}
